package design._13_command.queue;

import java.util.ArrayList;

import design._13_command.setButton.Command;
/**
 * 
 * 有时候我们需要将多个请求排队，当一个请求发送者发送一个请求时，将不止一个请求接收 者产生响应，这些请求接收者将逐个执行业务方法，完成对请求的处理。此时，我们可以通过命令队列来实现。
 * @author nrzt
 *
 */
//命令队列
public class CommandQueue {
	//定义一个ArrayList来存储命令队列
	private ArrayList<Command> commands = new ArrayList<Command>();
	public void addCommand(Command command) {
		commands.add(command);
	}
	public void removeCommand(Command command) {
		commands.remove(command);
	}
	//循环调用每一个命令对象的execute()方法
	public void execute() {
		for (Object command : commands) {
			((Command)command).execute();
		}
	}
}
